﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using com.creditos.be.liclBases;
using com.creditos.be.liclEntities;
using com.creditos.be.liclSolcred;

namespace LiclBases.Views
{
    public class LiclBasesPresenter : Viewer<ILiclBases>
    {
        LiclBasesPController oController = new LiclBasesPController();
        public LiclBasesPresenter()
        { 
        
        }

        public void OnInciar(List<ClienteConsulta>lst)
        {
            try
            {
                Global oGlobal= new Global();
                oGlobal = oController.Usuario_Validar(lst);
                View.MostrarMensajeError("Consulta a buró de crédito realizado exitosamente");
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void OnCargarInforme(ClienteConsulta oSolicitud)
        {
            ObtenerListaResultadoReglas(oSolicitud);
            ObtenerBuroDatosGenerales(oSolicitud);
            ObtenerBuroOtraDireccion(oSolicitud);
            ObtenerBuroOtraDireccion(oSolicitud);
            ObtenerBuroOmisos(oSolicitud);
            ObtenerBuroRepresentanteLegal(oSolicitud);
            ObtenerBuroCalificaciones(oSolicitud);
            ObtenerBuroAdversos(oSolicitud);
            ObtenerBuroMorosidad(oSolicitud);
            ObtenerBuroProtestos(oSolicitud);
            ObtenerBuroDeudaSBSEntidad(oSolicitud);
            ObtenerBuroResumenDeudaSBSEntidad(oSolicitud);
        }

        public void ObtenerListaIntegrantesBuroCredito(ClienteConsulta oIntegrantes)
        {
            try
            {
                List<IntegrantesBuro> lst = new List<IntegrantesBuro>();
                lst = oController.ObtenerListaIntegrantesBuroCredito(oIntegrantes);                
                View.CargarListaIntegrantesBuroCredito(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerListaResultadoReglas(ClienteConsulta oSolicitud)
        {
            try
            {
                List<ReglasEvaluacion> lst = new List<ReglasEvaluacion>();
                lst = oController.ObtenerListaResultadoReglas(oSolicitud);
                View.CargarListaResultadoReglas(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroDatosGenerales(ClienteConsulta oSolicitud)
        {
            try
            {
                List<DatGen> lst = new List<DatGen>();
                lst = oController.ObtenerBuroDatosGenerales(oSolicitud);
                View.CargarBuroDatosGenerales(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroOtraDireccion(ClienteConsulta oSolicitud)
        {
            try
            {
                List<OtrDir> lst = new List<OtrDir>();
                lst = oController.ObtenerBuroOtraDireccion(oSolicitud);
                View.CargarBuroOtraDireccion(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroOmisos(ClienteConsulta oSolicitud)
        {
            try
            {
                List<Omisos> lst = new List<Omisos>();
                lst = oController.ObtenerBuroOmisos(oSolicitud);
                View.CargarBuroOmisos(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroRepresentanteLegal(ClienteConsulta oSolicitud)
        {
            try
            {
                List<RepresentantesLegales> lst = new List<RepresentantesLegales>();
                lst = oController.ObtenerBuroRepresentanteLegal(oSolicitud);
                View.CargarBuroRepresentanteLegal(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroCalificaciones(ClienteConsulta oSolicitud)
        {
            try
            {
                List<Calificacion> lst = new List<Calificacion>();
                lst = oController.ObtenerBuroCalificaciones(oSolicitud);
                View.CargarBuroCalificaciones(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroAdversos(ClienteConsulta oSolicitud)
        {
            try
            {
                List<Adversos> lst = new List<Adversos>();
                lst = oController.ObtenerBuroAdversos(oSolicitud);
                View.CargarBuroAdversos(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroMorosidad(ClienteConsulta oSolicitud)
        {
            try
            {
                List<Morosidad> lst = new List<Morosidad>();
                lst = oController.ObtenerBuroMorosidad(oSolicitud);
                View.CargarBuroMorosidad(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroProtestos(ClienteConsulta oSolicitud)
        {
            try
            {
                List<Protesto> lst = new List<Protesto>();
                lst = oController.ObtenerBuroProtestos(oSolicitud);
                View.CargarBuroProtestos(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroResumenDeudaSBSEntidad(ClienteConsulta oSolicitud)
        {
            try
            {
                List<DeudaSBS> lst = new List<DeudaSBS>();
                lst = oController.ObtenerBuroResumenDeudaSBSEntidad(oSolicitud);
                View.CargarBuroResumenDeudaSBSEntidad(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerBuroDeudaSBSEntidad(ClienteConsulta oSolicitud)
        {
            try
            {
                List<MorosidadSBS> lst = new List<MorosidadSBS>();
                lst = oController.ObtenerBuroDeudaSBSEntidad(oSolicitud);
                View.CargarBuroDeudaSBSEntidad(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void EvaluarCentralRiesgo(ClienteConsulta oDatos)
        {
            try
            {                
                oController.EvaluarCentralRiesgo(oDatos);                
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
    }
}
